package com.stusystem;

import java.util.ArrayList;
import java.util.Scanner;

public class Test {
    //唯一输入
    public static final Scanner input = new Scanner(System.in);
    //创建集合
    public static ArrayList<Student> list = new ArrayList<>();

    static {
        list.add(new Student("001", "帅的爆", 18, "9-13"));
        list.add(new Student("002", "帅的一", 19, "10-13"));
        list.add(new Student("003", "帅的二", 20, "11-12"));
        list.add(new Student("004", "帅的三", 21, "9-1"));
        list.add(new Student("005", "帅的四", 22, "2-1"));
    }

    public static void main(String[] args) {
        //循环执行系统
        while (true) {
            System.out.println("------------欢迎来到学生管理系统-------------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查看所有学生信息");
            System.out.println("5.退出系统");
            System.out.println("请输入你的选择");
            //手动选择
            int num = input.nextInt();
            switch (num) {
                case 1:
                    System.out.println("添加学生");
                    add();
                    break;
                case 2:
                    System.out.println("删除学生");
                    delete();
                    break;
                case 3:
                    System.out.println("修改学生");
                    update();
                    break;
                case 4:
                    System.out.println("以下是学生所有信息");
                    show();
                    break;
                case 5:
                    System.out.println("系统退出，谢谢使用");
                    return;
            }
        }

    }

    //1.添加学生
    public static void add() {
        //键盘输入学生信息
        System.out.println("请输入您想要添加的学生学号");
        String id = input.next();
        //如果id重复
        if (select(id)) {
            System.err.println("您想要添加的学号重复,请重新输入");
            return;
        }
        System.out.println("请输入您想要添加的学生姓名");
        String name = input.next();
        System.out.println("请输入您想要添加的学生年龄");
        int age = input.nextInt();
        System.out.println("请输入您想要添加的学生生日");
        String birth = input.next();
        list.add(new Student(id, name, age, birth));

        System.out.println("添加成功");
        show();
    }

    //查询有没有重复学号
    public static boolean select(String id) {
        for (Student student : list) {
            if (student.getId().equals(id)) {
                return true;
            }
        }
        return false;
    }

    //2.删除学生
    public static void delete() {
        //键盘输入学生信息
        System.out.println("请输入您想要删除的学生学号");
        String id = input.next();
        //如果存在
        if (select(id)) {
            list.remove(id);
            System.out.println("删除成功");
            show();
        } else {//如果不存在
            System.err.println("抱歉，您想要删除的学生不存在");
        }
    }

    //3.修改学生
    public static void update() {
        //键盘输入学生信息
        System.out.println("请输入您想要修改的学生学号");
        String id = input.next();
        if (select(id)) {//如果存在
            //定义索引
            int index = 0;
            for (int i = 0; i < list.size(); i++) {
                if (list.get(i).getId().equals(id)) {
                    index = i;
                    System.out.println("请输入您想要修改的学生信息如下：");
                    System.out.println("学号     姓名      年龄     生日");
                    System.out.println(list.get(i));
                }
            }
            //键盘输入学生信息
            System.out.println("请输入您想要修改后的学生学号");
            String id1 = input.next();
            Student student = new Student();
            System.out.println("请输入您想要修改后的学生姓名");
            String name = input.next();
            System.out.println("请输入您想要修改后的学生年龄");
            int age = input.nextInt();
            System.out.println("请输入您想要修改后的学生生日");
            String birth = input.next();

            System.out.println("修改成功");
            //创建一个学生类
            Student stu = new Student(id1, name, age, birth);

            list.set(index, stu);
            show();
            return;
        }
        System.out.println("您想要修改的学生不存在");
        return;

    }

    //4.查看所有学生信息
    //展示所有信息方法
    public static void show() {
        System.out.println("学号     姓名      年龄     生日");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}
